package edu.pku.sei.act.model.mote;

import edu.pku.sei.act.model.common.ArchiModelConst;
import edu.pku.sei.gmp.model.concept.GMPModelElement;
import edu.pku.sei.gmp.model.util.GMPTypedList;
import edu.pku.sei.gmp.properties.annotation.GMPAnnotation;

public class TaskEditArea extends GMPModelElement{
	
	@GMPAnnotation(
			id = "edu.pku.sei.act.model.package.Name",
			name = ArchiModelConst.PACKAGE_NAME,
			category = "Model",
			getter = "getName",
			setter = "setName",
			visible = true,
			serialize = true
			)
	private String name;
	

	@GMPAnnotation(
			id = "edu.pku.sei.act.model.package.mote",
			name = ArchiModelConst.PACKAGE_MOTE,
			category = "Model",
			getter = "getMote",
			setter = "setMote",
			visible = false,
			serialize = true,
			reference = false
			)
	private GMPTypedList<MoteForPackage> mote = new GMPTypedList<MoteForPackage>(
				ArchiModelConst.PACKAGE_MOTE, GMPTypedList.BAG, this, MoteForPackage.class, true);
	
	@GMPAnnotation(
			id = "edu.pku.sei.act.model.Task.InitialNode",
			name = ArchiModelConst.INITIALNODE,
			category = "Model",
			getter = "getInitialNode",
			setter = "setInitialNode",
			visible = false,
			serialize = true,
			reference = false
			)
	private InitialNode initialNode;
	
	@GMPAnnotation(
			id = "edu.pku.sei.act.model.Task.Action",
			name = ArchiModelConst.ACTION,
			category = "Model",
			getter = "getAction",
			setter = "setAction",
			visible = false,
			serialize = true,
			reference = false
			)
	private Action action;
	
	@GMPAnnotation(
			id = "edu.pku.sei.act.model.Task.SendAction",
			name = ArchiModelConst.SENDACTION,
			category = "Model",
			getter = "getSendAction",
			setter = "setSendAction",
			visible = false,
			serialize = true,
			reference = false
			)
	private SendAction sendAction;
	
	@GMPAnnotation(
			id = "edu.pku.sei.act.model.Task.AcceptAction",
			name = ArchiModelConst.ACCEPTACTION,
			category = "Model",
			getter = "getAcceptAction",
			setter = "setAcceptAction",
			visible = false,
			serialize = true,
			reference = false
			)
	private AcceptAction acceptAction;
	
	@GMPAnnotation(
			id = "edu.pku.sei.act.model.Task.DecisionNode",
			name = ArchiModelConst.DECISIONNODE,
			category = "Model",
			getter = "getDecisionNode",
			setter = "setDecisionNode",
			visible = false,
			serialize = true,
			reference = false
			)
	private DecisionNode decisionNode;
	
	@GMPAnnotation(
			id = "edu.pku.sei.act.model.Task.MergeNode",
			name = ArchiModelConst.MERGENODE,
			category = "Model",
			getter = "getMergeNode",
			setter = "setMergeNode",
			visible = false,
			serialize = true,
			reference = false
			)
	private MergeNode mergeNode;
	
	@GMPAnnotation(
			id = "edu.pku.sei.act.model.Task.ActivityFinal",
			name = ArchiModelConst.ACTIVITYFINAL,
			category = "Model",
			getter = "getActivityFinal",
			setter = "setActivityFinal",
			visible = false,
			serialize = true,
			reference = false
			)
	private ActivityFinal activityFinal;
	
	
	public void setName(String name){
		this.name = name;
	}
	
	public String getName(){
		return this.name;
	}
	
	public void setInitialNode(InitialNode initialNode){
		this.initialNode = initialNode;
	}
	
	public InitialNode getInitialNode(){
		return this.initialNode;
	}
	
	public void setAction(Action action){
		this.action = action;
	}
	
	public Action getAction(){
		return this.action;
	}
	
	public void setSendAction(SendAction sendAction){
		this.sendAction = sendAction;
	}
	
	public SendAction getSendAction(){
		return this.sendAction;
	}
	
	public void setAcceptAction(AcceptAction acceptAction){
		this.acceptAction = acceptAction;
	}
	
	public AcceptAction getAcceptAction(){
		return this.acceptAction;
	}
	
	public void setDecisionNode(DecisionNode decisionNode){
		this.decisionNode = decisionNode;
	}
	
	public DecisionNode getDecisionNode(){
		return this.decisionNode;
	}
	
	public void setMergeNode(MergeNode mergeNode){
		this.mergeNode = mergeNode;
	}
	
	public MergeNode getMergeNode(){
		return this.mergeNode;
	}
	
	public void setActivityFinal(ActivityFinal activityFinal){
		this.activityFinal = activityFinal;
	}
	
	public ActivityFinal getActivityFinal(){
		return this.activityFinal;
	}
	
	public void setMote(GMPTypedList<MoteForPackage> mote){
		this.mote = mote;
	}
	
	public GMPTypedList<MoteForPackage> getMote(){
		return this.mote;
	}

}
